<?php

/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
namespace Agp\CoreBundle\Manager;

use Agp\CoreBundle\Manager\BaseManager;
use Agp\CoreBundle\Entity\ItemVenda;
use Agp\CoreBundle\Entity\Venda;
use Agp\CoreBundle\Entity\ListaPreco;

/**
 * Description of VendaManager
 *
 * @author bondcs
 */
class VendaManager extends BaseManager{
    
    public function changeSituacaoWithPassaporte($item, $tipo){
        
//        $itens = array();
//        if ($item->getLista()->getTipo() == ListaPreco::TP_PASSAPORTE AND $item != null){
//           $itens = $this->container->get('agp.itemVenda.repository')->getPassaporteByItem($item); 
//        }
        
        $itens[] = $item;
        
        foreach ($itens as $i){
            $this->container->get('agp.venda.manager')->changeSituacaoItem($i, $tipo);
        }
    }

    public function changeSituacaoItem($item, $tipo){
        
        switch ($tipo){
            case '1':
                $item->setSituacao(ItemVenda::SIT_ATIVO);
                $venda = $item->getVenda();
                $venda->setSituacao(Venda::SIT_ATIVO);
                break;
            case '2':
                $item->setSituacao(ItemVenda::SIT_CANCELADO);
                $venda = $item->getVenda();

                if ($venda->allItemIsCancelado()){
                    $venda->setSituacao(Venda::SIT_CANCELADO);
                }
                break;
            case '3':
                $item->setSituacao(ItemVenda::SIT_INATIVO);
                $venda = $item->getVenda();
                $venda->setSituacao(Venda::SIT_ATIVO);
//                $flag = false;
//                foreach ($venda->getItens() as $item){
//                    if ($item->getSituacao() != ItemVenda::SIT_INATIVO){
//                        $flag = true;
//                    }
//
//                }
//                
//                if (!$flag){
//                        $venda->setSituacao(Venda::SIT_ATIVO);
//                }
                break;
                
                
        }
  
        $this->update($item);
        
    }
    
    public function changeSituacao($codVenda){
        $venda = $this->findById($codVenda);
        
        if ($venda->isAtivo()){
            $venda->setSituacao(Venda::SIT_CANCELADO);
        }else{
            $venda->setSituacao(Venda::SIT_ATIVO);
        }
        
        $this->update($venda);
    }
}

?>
